// 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict，判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。

// 说明：

// 拆分时可以重复使用字典中的单词。
// 你可以假设字典中没有重复的单词。

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/word-break
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

#include<bits/stdc++.h>
#include<string>
#include<vector>
#include<unordered_set>
#include<set>
#include<queue>
using namespace std;

class Solution {
public:
    bool wordBreak(string s, vector<string>& wordDict) {
        unordered_set<string> hash;
        for(int i=0;i<wordDict.size();i++){
            hash.insert(wordDict[i]);
        }
        string temp="";
        for(int i=0;i<s.size();i++){
            temp = temp+s[i];
            if(hash.count(temp)){
                temp = "";
            }
        }
        if(temp == ""){
            return true;
        }
        return false;
    }
};